package com.blrs.domain;

import java.util.Date;

import com.blrs.common.annotation.Excel;
import com.blrs.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 项目交付物对象 project_deliverable
 *
 * @author ruoyi
 * @date 2024-05-15
 */
public class ProjectDeliverable extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 交付物ID，使用UUID作为主键，确保唯一性，用于唯一标识每个交付物记录
     */
    private String deliverableId;

    /**
     * 关联的工艺ID，外键关联project_process表，建立交付物记录与工艺记录的关联关系
     */
    @Excel(name = "工艺ID")
    private String processId;

    /**
     * 交付物名称，记录交付物的具体名称
     */
    @Excel(name = "交付物名称")
    private String deliverableName;

    /**
     * 交付物顺序，记录交付物在工艺中的顺序
     */
    private Integer deliverableOrder;

    /**
     * 交付时间，记录交付物的交付时间
     */
    private Date deliveryTime;

    /**
     * 交付人ID，外键关联user表，记录交付物的交付人ID
     */
    private Long deliveryPerson;

    private String nickName;

    private String url;

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    /**
     * 用途，1策划，2模版，3实施
     */
    @Excel(name = "用途", readConverterExp = "1=策划,2=模版,3=实施")
    private Integer useType;

    @Excel(name = "是否必交", readConverterExp = "1=是,0=否")
    private Integer isRequired;

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getDeliverableId() {
        return deliverableId;
    }

    public void setDeliverableId(String deliverableId) {
        this.deliverableId = deliverableId;
    }

    public String getProcessId() {
        return processId;
    }

    public void setProcessId(String processId) {
        this.processId = processId;
    }

    public String getDeliverableName() {
        return deliverableName;
    }

    public void setDeliverableName(String deliverableName) {
        this.deliverableName = deliverableName;
    }

    public Integer getDeliverableOrder() {
        return deliverableOrder;
    }

    public void setDeliverableOrder(Integer deliverableOrder) {
        this.deliverableOrder = deliverableOrder;
    }

    public Date getDeliveryTime() {
        return deliveryTime;
    }

    public void setDeliveryTime(Date deliveryTime) {
        this.deliveryTime = deliveryTime;
    }

    public Long getDeliveryPerson() {
        return deliveryPerson;
    }

    public void setDeliveryPerson(Long deliveryPerson) {
        this.deliveryPerson = deliveryPerson;
    }

    public Integer getUseType() {
        return useType;
    }

    public void setUseType(Integer useType) {
        this.useType = useType;
    }

    public Integer getIsRequired() {
        return isRequired;
    }

    public void setIsRequired(Integer isRequired) {
        this.isRequired = isRequired;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("deliverableId", getDeliverableId())
                .append("processId", getProcessId())
                .append("deliverableName", getDeliverableName())
                .append("deliverableOrder", getDeliverableOrder())
                .append("deliveryTime", getDeliveryTime())
                .append("deliveryPerson", getDeliveryPerson())
                .append("useType", getUseType())
                .append("isRequired", getIsRequired())
                .toString();
    }
} 